package demo2;

import java.lang.reflect.Array;
import java.time.LocalDate;
import java.util.*;

/**
 * 2024/6/9 Cjj  遍历数组中对象出现的次数
 */
public class Test {
    public static void main(String[] args) {
        String str = "10001:张三:男:1990-01-01#10002:李四:女:1989-01-09#10003:王五:男:1999-09-09#10004:刘备:男:1899-01-01#10005:孙悟空:男:1900-01-01#10006:张三:女:1999-01-01#10007:刘备:女:1999-01-01#10008:张三:女:2003-07-01#10009:猪八戒:男:1900-01-01";
        //定义一个用户类
        List<User> users = new ArrayList<>();

        //把全部数据用#分割
        String[] usersArray = str.split("#");
        for (String userStr : usersArray) {
            //创建一个用户对象,封装这个用户数据
            User user = new User();
            String[] userData = userStr.split(":");
            user.setId(Long.valueOf(userData[0]));
            user.setName(userData[1]);
            user.setSex(userData[2]);
            user.setBirthday(LocalDate.parse(userData[3]));
            //把用户对象存入到集合中去
            users.add(user);
        }
        System.out.println(users);

        //1.遍历上面获取的List<Usr>集合,统计里面每个名字出现的次数
        //2.封装Map<String,Integer>集合中,集合的key就是名字,value就是名字出现的次数
        //3.最后遍历打印map数据, 打印内容如下；
        //张三：3次  李四：5次

        //1.遍历上面获取的List<Usr>集合,统计里面每个名字出现的次数  
        Map<String, Integer> map = new HashMap<>();
        for (User user : users) {
            String name = user.getName();
            if (map.containsKey(name)) {
                map.put(name, map.get(name) + 1);
            } else {
                map.put(name, 1);
            }
        }
        System.out.println(map);

        //2.遍历map集合
        map.forEach((k, v) -> {
            System.out.println(k + ":" + v + "次");
        });
    }
}
